// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CWeaponHurtType.h"
#include "InteractData.h"
#include "WeaponPack.generated.h"

/**
 * 
 */
USTRUCT(BlueprintType)
struct ISALONG2_API FWeaponPack : public FInteractData
{
	GENERATED_USTRUCT_BODY()


	UPROPERTY(EditAnywhere,BlueprintReadWrite, category = "PackData")
	float _baseHurtValue;

	UPROPERTY(EditAnywhere,BlueprintReadWrite, category = "PackData")
	int32 _hurtType;

	UPROPERTY(EditAnywhere,BlueprintReadWrite, category = "PackData")
	int32 _maxContains;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, category = "PackData")
	FVector _holdLocationOffset;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, category = "PackData")
	FRotator _holdRotationOffset;

	UPROPERTY(EditAnywhere,BlueprintReadWrite, category = "PackData")
	FRotator _forwardArrowRotationOffset;

	UPROPERTY(EditAnywhere,BlueprintReadWrite, category = "PackData")
	FVector _forwardArrowLocationOffset;

	UPROPERTY(EditAnywhere,BlueprintReadWrite, category = "PackData")
	FRotator _effectParticleRotationOffset;

	UPROPERTY(EditAnywhere,BlueprintReadWrite, category = "PackData")
	FVector _effectParticleLocationOffset;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, category = "PackData")
	USkeletalMesh* _skeletalMesh;

	UPROPERTY(EditAnywhere,BlueprintReadWrite, category = "PackData")
	UParticleSystem* _weaponFireParticle;

	UPROPERTY(EditAnywhere,BlueprintReadWrite, category = "PackData")
	UAnimMontage* _weaponReloadMontage;

	UPROPERTY(EditAnywhere,BlueprintReadWrite, category = "PackData")
	UAnimMontage* _weaponFireMontage;

	UPROPERTY(EditAnywhere,BlueprintReadWrite, category = "PackData")
	UAnimMontage* _characterReloadMontage;

	UPROPERTY(EditAnywhere,BlueprintReadWrite, category = "PackData")
	UAnimMontage* _characterFireMontage;

	UPROPERTY(EditAnywhere,BlueprintReadWrite, category = "PackData")
	UAnimMontage* _characterADSMontage;

	UPROPERTY(EditAnywhere,BlueprintReadWrite, category = "PackData")
	TSubclassOf<UAnimInstance> _weaponAnimBP;

	UPROPERTY(EditAnywhere,BlueprintReadWrite, category = "PackData")
	TSubclassOf<UCameraShake> _fireShake;

	UPROPERTY(EditAnywhere,BlueprintReadWrite, category = "PackData")
	TSubclassOf<UCameraShake> _reloadShake;

	UPROPERTY(EditAnywhere,BlueprintReadWrite, category = "PackData")
	USoundBase* _fireSound;

	UPROPERTY(EditAnywhere,BlueprintReadWrite, category = "PackData")
	USoundBase* _reloadSound;

	FWeaponPack()
	{
		_hurtType = 11;
		_baseHurtValue = 0;
		_maxContains = 0;
		_holdLocationOffset = FVector(0, 0, 0);
		_holdRotationOffset = FRotator(0, 0, 0);
		_forwardArrowLocationOffset = FVector(0, 0, 0);
		_forwardArrowRotationOffset = FRotator(0, 0, 0);
		_effectParticleLocationOffset = FVector(0, 0, 0);
		_effectParticleRotationOffset = FRotator(0, 0, 0);
		_weaponFireParticle = nullptr;
		_weaponReloadMontage = nullptr;
		_weaponFireMontage = nullptr;
		_characterReloadMontage = nullptr;
		_characterFireMontage = nullptr;
		_characterADSMontage = nullptr;
		_weaponAnimBP = nullptr;
		_fireShake = nullptr;
		_reloadShake = nullptr;
		_fireSound = nullptr;
		_reloadSound = nullptr;
	}
};
